1. Field of the Invention
The present invention is generally directed to device control. In particular, the present invention relates to a system, method and apparatus for controlling consumer electronic devices.
2. Background
The majority of consumer electronic (CE) devices currently available to end users are remotely controllable through handheld remote control units that transmit command codes via infra-red (IR) signals intelligible by CE devices. Such CE devices may include, but are not limited to, televisions (TVs), digital video disc (DVD) players, personal video recorders (PVRs), compact disc (CD) players, and stereo receivers. Example command codes for controlling such devices include, but are not limited to, power on/off, channel select, channel up/down, and volume up/down.
Each CE device responds to a particular set of command codes. When an end user selects an operation or function on a remote control unit, a command code corresponding to the CE device for the selected operation or function is converted by the remote control unit into signals that are transmitted to and received by the CE device. In turn, the CE device converts the received signals into a command code and then executes the function corresponding to the code.
Unfortunately, there is no standardization of command codes across manufacturers and, in many cases, even for a particular manufacturer. For example, the command code for PLAY on a Yamaha DVD player is different from the command code for PLAY on a Sony DVD player. Furthermore, a single manufacturer may use different command code sets among similar devices as several original design manufacturers (ODM) are utilized, component suppliers are changed, or the technology is refined to accommodate new capabilities.
The lack of standardization has resulted in hundreds of disparate command code sets for thousands of different devices. For example, most manufacturers of CE devices controllable by infrared (IR) signals emitted by a remote control unit have standardized on pulse-code modulation (PCM) with a 30-60 kHz carrier frequency (36-38 kHz being the most common) to transmit command codes. However, there is little agreement on the data format. For example, some data formats have a pre-burst header, while others require that the data be sent twice for fault tolerance. In addition, the formats of command codes are rarely disclosed to the public by CE device manufacturers.
Efforts by third parties to collect the ever increasing universe of command code sets have produced collections that are deficient. Most of these collections provide only a mapping between command code sets and manufacturers. These collections generally do not provide a mapping between individual CE devices and command code sets. Hence, an end user wishing to control a CE device using a third party remote control may need to experiment with various command code sets that are designated for the manufacturer until a suitable command code set is identified.
Furthermore, these collections do not provide additional information or metadata necessary for automated or programmed control. Existing collections, which contain only command code sets, can be sufficient when an end user operates a remote control by sending one command after another. In such circumstances, the end user can monitor the CE device and adjust the subsequent commands that are sent until the desired operation is performed by the CE device. But to support an automated or programmed control, which may, for example, send several commands automatically in sequence, additional information beyond command codes is required. For example, suppose an intelligent remote control wishes to support a programmed control that turns on a television and sets it to channel 3. The intelligent remote will need to know how long it will take the TV to turn on and be ready to receive additional command codes. Furthermore, the intelligent remote needs to know whether it should send only a ‘3’ command code, a ‘0’ and ‘3’ command codes, or a ‘3’ and ‘enter’ command codes to tune the TV to channel 3. Since prior collections do not provide such metadata, prior collections are inadequate to support automated or programmed controls.
In addition, the lack of metadata in prior collections has required end users to familiarize themselves with the control idiosyncrasies of each CE device. For example, suppose two televisions having a different manufacturer or model type have control idiosyncrasies relating to setting the input state. The end user must become familiar with the different series of commands that must be sent to each television to achieve an identical function of setting the input state. If metadata describing these idiosyncrasies were available, an intelligent remote control could automatically execute the appropriate commands unique to each television and provide the end user with a single set input command that hides the idiosyncrasies of how each device is actually controlled.
What is desired, then, is a database of command codes and metadata for specific CE device models along with a system, method and apparatus that are capable of utilizing such a database to provides true automatic and programistic control of a variety of CE devices.